Menu display control

ABSTRACT

According to an example, a position of a pointer may be detected to be positioned over an icon of a plurality of selectable icons. A menu containing a set of sub-icons corresponding to the icon may be displayed and a first location and a second location of the displayed menu may be determined. A first line and a second line may be determined and a plurality of points in a movement of the pointer may be recorded. A third line that crosses the plurality of recorded points may also be determined. In response to a determination that the third line is within an area between the first line and the second line, the menu may continue to be displayed while the pointer passes over another icon of the plurality of selectable icons.

CLAIM FOR PRIORITY

The present application is a national stage filing under 35 U.S.C. § 371of PCT application number PCT/CN2014/093088, having an internationalfiling date of Dec. 5, 2014, the disclosure of which is herebyincorporated by reference in its entirety.

BACKGROUND

The use of menus has become ubiquitous in the graphical user interfaces(GUIs) of many electronic devices such as desktop computers, laptops,tablet computers, smartphones, and media player devices. Many GUIspresent information or options to users in menus and sub-menus.Particularly, GUIs often display icons or other objects in an arrangedmenu and selection of an icon in the menu sometimes results in thedisplay of a popup menu that provides users with additional options. Inaddition, selection of other icons often results in the display of otherpopup menus.

BRIEF DESCRIPTION OF THE DRAWINGS

Features of the present disclosure are illustrated by way of example andnot limited in the following figure(s), in which like numerals indicatelike elements, in which:

FIGS. 1A-1D, respectively, show simplified diagrams of a display duringdifferent operating display states, according to an example of thepresent disclosure;

FIG. 2 is a simplified diagram of an apparatus for controlling a menudisplay, according to an example of the present disclosure;

FIG. 3 depicts a flow diagram of a method for controlling a menudisplay, according to an example of the present disclosure;

FIG. 4 depicts a diagram of a manner in which the Pythagorean theoremmay be used to determine whether a motion trail line is within aboundary formed by a first line and a second line; and

FIG. 5 is schematic representation of a computing device, which mayrepresent the apparatus depicted in FIG. 2, according to an example ofthe present disclosure.

DETAILED DESCRIPTION

For simplicity and illustrative purposes, the present disclosure isdescribed by referring mainly to an example thereof. In the followingdescription, numerous specific details are set forth in order to providea thorough understanding of the present disclosure. It will be readilyapparent however, that the present disclosure may be practiced withoutlimitation to these specific details. In other instances, some methodsand structures have not been described in detail so as not tounnecessarily obscure the present disclosure. As used herein, the terms“a” and “an” are intended to denote at least one of a particularelement, the term “includes” means includes but not limited to, the term“including” means including but not limited to, and the term “based on”means based at least in part on.

Disclosed herein are methods and apparatuses for controlling a menudisplay. According to an example, the methods and apparatuses disclosedherein provide users with enhanced behavioral control over the displayof menus, and particularly, popup menus. That is, for instance, insteadof automatically closing a popup menu as a pointer is moved from a firsticon to a sub-icon displayed in a popup menu as may occur when thepointer is moved over another icon, the popup menu may remain displayedduring the pointer movement. In other examples, the popup menu may beclosed and another popup menu may be displayed if the pointer ispositioned over another icon for a predefined period of time. As such,for instance, a popup menu corresponding to a first icon may beprevented from unintentionally closing during a natural, e.g., direct,movement of a pointer from the first icon to a sub-icon displayed in apopup menu.

As discussed in greater detail herein, a user's intent with regard tomaintaining the display of a popup menu may be determined throughcalculation of a motion trail that a pointer follows after the popupmenu has been displayed. According to an example, the Pythagoreantheorem is used to determine whether the motion trail is within adetermined boundary formed by a pair of lines. In response to the motiontrail being within the determined boundary, the popup menu may remaindisplayed. However, in response to the motion trail being outside of thedetermined boundary, the popup menu may be closed or otherwise cease tobe displayed. The popup menu may also be closed, for instance, if thepointer is determined to be positioned over another icon for apredefined length of time.

With reference to FIG. 1A, there is shown a simplified diagram of adisplay 100 on which various features of the methods disclosed hereinmay be displayed, according to an example. It should be understood thatthe display 100 depicted in FIG. 1A may include additional elements andthat some of the elements depicted therein may be removed and/ormodified without departing from a scope of the display 100.

According to an example, the display 100 may be a display of anelectronic device or otherwise connected to an electronic device (notshown). For instance, the display 100 may be the display of asmartphone, a tablet computer, a laptop computer, a television monitor,or the like. As another example, the display 100 may be a monitor thatis connected to a desktop computer, a laptop computer, or the like. Inany regard, the display 100 may display various information and mayprovide a graphical user interface (GUI) through which a user maymanipulate operations of the display 100 and/or an electronic deviceconnected to the display 100.

A plurality of icons 102-108 and a pointer 110 are depicted in FIG. 1Aas being displayed on the display 100. The icons 102-108, which are alsoreferred to herein as objects 102-108, are depicted as being arranged ina vertically aligned manner with respect to each other. According to anexample, the icons 102-108 may be part of a sidebar or other arrangementof icons 102-108 and may be user-selectable, such that selection of anicon 102 causes an action to occur as described in greater detail hereinbelow. That is, a user may maneuver the pointer 110, which may also bereferred to as a selector, a cursor, etc., around the display 100 tocontrol various operations with respect to the display 100. The user maymaneuver the pointer 110 through interaction with an interface such as amouse, a trackball, a touchscreen, a trackpad, etc.

As shown in FIG. 1B, the user may maneuver the pointer 110 over one ofthe icons 102 to select the icon 102. In one example, the icon 102 maybe selected when the pointer 110 is positioned over the icon 102 for apredetermined length of time. For instance, the icon 102 mayautomatically be selected if the pointer 110 is positioned over, e.g.,in a hovering position, over the icon 102 for one second, a couple ofseconds, or the like. In another example, the icon 102 may be selectedfollowing a direct input by a user such as through a mouse click orother manual selection of the icon 102.

In any of the examples above, selection of the icon 102 may result inthe display of a menu 120 containing a set of sub-icons 122-126, orequivalently, a set of sub-objects 122-126. The icons 102-108 and thesub-icons 122-126 may each be any of thumbnails, hyper-link texts,texts, or the like. As shown in FIG. 1B, the menu 120 may be displayedat a location that is adjacent to the icons 102-108 as a popup menu. Inaddition, the menu 120 and the sub-icons 122-126 may correspond to theselected icon 102 such that different menus and sub-icons may bedisplayed for different ones of the icons 102-108. As such, in instanceswhere the icons 102-108 are automatically selected when the pointer 110is positioned over the icon for a predetermined length of time, adifferent menu may be displayed as the pointer 110 is moved over theicons 102-104. An example of this possibility is depicted in FIG. 10.

As shown in FIG. 10, the pointer 110 may be moved toward sub-icon 126 ina number of different manners. In a first manner, as indicated by thepointer motion path 130, the pointer 110 may be moved horizontally tothe menu 120 and then vertically to the sub-icon 126. This type ofmovement prevents the pointer 110 from being moved over any of the othericons 104-108, thus preventing accidental selection of another icon104-108, which may cause the menu 120 to be closed and another menu tobe displayed. However, maneuvering the pointer 110 in this manner may becumbersome and unnatural as it does not follow a direct path to thesub-icon 126.

A more direct path from the icon 102 to the sub-icon 126 is depicted aspointer motion path 132. The pointer motion path 132 is depicted astraversing another icon 104. In this case, if the speed at which thepointer 110 travels over icon 104 is sufficiently slow such that thepointer 110 is deemed to have hovered over icon 104 for thepredetermined length of time, the icon 104 may unintentionally beselected. Selection of the icon 104 may cause the menu 120 to be closedand another menu containing sub-icons that correspond to the icon 104 tobe displayed.

To prevent the unintentional selection of an icon that is in the path ofa pointer 110 movement from a selected icon 102 to a sub-icon 126displayed in a menu 120 corresponding to the selected icon 102,techniques as disclosed herein may be implemented. Particularly,movement of the pointer 110 in the direction of the sub-icon 126 may bedetected and based upon a processing of that movement, a determinationmay be made as to whether to continue to display the menu 120 or toclose the menu 120.

Turning now to FIG. 1D, there are shown various aspects of theabove-described technique, according to an example. It should beunderstood that the black dots and the lines representing the variousfeatures described with respect to FIG. 1D are for illustrative purposesonly and are thus not intended to be construed as actually beingdisplayed on the display 100. As shown in FIG. 1D, a first location 140of the menu 120 and a second location 142 of the menu 120 may bedetermined. The first location 140 may be a top corner of the menu 120and the second location 142 may be a lower corner of the menu 120.According to an example, the first location 140 and the second location142 are the closest two corners to the selected icon 102. It should,however, be understood that the first location 140 and the secondlocation 142 may be other locations of the menu 120 without departingfrom a scope of the methods and apparatuses disclosed herein.

As also shown in FIG. 1D, a pointer position 144 may be determined. Thepointer position 144 may be the position at which the pointer 110 ispositioned when the icon 102 is selected and the menu 120 is initiallydisplayed. In this regard, the pointer position 144 may be construed asan initial position or location of the pointer 110 prior to the pointer110 being maneuvered toward a sub-icon 126 following the display of themenu 120. In any regard, a first line 146, which is also referred toherein as a ceiling line 146, may be determined to be a line extendingfrom the first location 140 to the pointer position 144 or vice versa.In addition, a second line 148, which is also referred to herein as afloor line 148, may be determined to be a line extending from the secondlocation 142 to the pointer position 144 or vice versa. As shown in FIG.1D, an angle is formed between the first line 146 and the second line148, in which the angle is less than 180 degrees.

A third line 152 may also be determined based upon recorded movementpoints 150 of the pointer 110. The recorded movement points 150 may be anumber of points, e.g., 2, 3, or more points, along the direction ofmovement of the pointer 110 from the pointer position 144. The thirdline 152 may be determined as a line that crosses or intersects therecorded movement points 150, for instance, a line that extends along amedian position of the recorded movement points 150. In the exampleshown in FIG. 1D, the third line 152 is depicted as being within an areabetween the first line 146 and the second line 148. In other words, thethird line 152 is depicted as being within a boundary formed by thefirst line 146 and the second line 148. In this example, if the pointer110 is moved substantially along the direction of the third line 152 andthe pointer 110 thus passes over the icon 104, the menu 120 may continueto be displayed. This may be true even in instances where the pointer110 hovers over the icon 104 for the predetermined length of time.However, if the pointer 110 is maintained over the icon 104 for apredefined length of time that is greater than the predetermined lengthof time while following the third line 152, this may be construed as anintent by a user to select the icon 104. In this instance, the menu 120may be closed and a menu corresponding to the icon 104 may be displayed.The predefined length of time may be, for instance, 2 seconds, 3seconds, 4 seconds, etc.

In another example, if the pointer 110 were moved in the direction asnoted by the recorded movement points 152, for which a fourth line 154may be determined, such movement may be deemed to be outside of the areabetween the first line 146 and the second line 148. In this example, themenu 120 may be closed or otherwise cease to be displayed.

In the descriptions of the diagrams depicted in FIGS. 1A-1D, referenceis made to particular numbers of icons 102-108 and sub-icons 122-126. Itshould be clearly understood that these figures merely depict examplesand that any number of icons and sub-icons may be displayed withoutdeparting from the scopes of the methods and apparatuses disclosedherein. It should also be clearly understood that other modificationsmay be made to the depicted examples.

Turning now to FIG. 2, there is shown a simplified block diagram 200 ofan apparatus 200 for controlling a menu display, according to anexample. It should be understood that the apparatus 200 depicted in FIG.2 may include additional elements and that some of the elements depictedtherein may be removed and/or modified without departing from a scope ofthe apparatus 200.

As shown in FIG. 2, the apparatus 200 may include a processor 202, aninterface 204, a data store 206, and a memory 210. The memory 210 isalso depicted as including an icon displaying module 212, a pointerlocation determining module 214, a menu displaying module 216, alocation determining module 218, a line determining module 220, and aline processing module 222. According to an example, the processor 202may send and receive instructions to input/output devices 230, e.g., amouse, a display, a keyboard, etc., through the interface 204 based uponexecution or implementation of the modules 212-222. In this regard, theprocessor 202 may be a hardware processor, such as a central processingunit, an application specific integrated circuit, a graphics processingunit, or the like.

The memory 210 may be a volatile or non-volatile hardware device such asdynamic random access memory (DRAM), electrically erasable programmableread-only memory (EEPROM), magnetoresistive random access memory (MRAM),memristor, flash memory, floppy disk, a compact disc read only memory(CD-ROM), a digital video disc read only memory (DVD-ROM), or otheroptical or magnetic media, and the like, on which software may bestored. In this example, the modules 212-222 may be software modules,e.g., sets of machine readable instructions, stored in the hardwaredevice 210.

In another example, the memory 210 may be a hardware component, such asa chip component, an integrated circuit component, etc., and the modules212-222 may be hardware modules on the hardware component. In a furtherexample, the modules 212-222 may be a combination of software andhardware modules.

The data store 206 may be used to store various information related tothe operation of and/or used by the processor 202 during implementationof the modules 212-222. For instance, information pertaining to themenus and the sub-icons that correspond to the icons 102-108 may bestored in the data store 206. The data store 206 may be volatile and/ornon-volatile memory, such as DRAM, EEPROM, MRAM, phase change RAM(PCRAM), memristor, flash memory, and the like. In addition, oralternatively, the data store 206 may be a device that may read from andwrite to a removable media, such as, a floppy disk, a CD-ROM, a DVD-ROM,or other optical or magnetic media.

Various manners in which the apparatus 200 in general, and the modules212-222 in particular, may be implemented are discussed in greaterdetail with respect to the method 300 depicted in FIG. 3. Particularly,FIG. 3 depicts a flow diagram of a method 300 for controlling a menudisplay, according to an example. It should be apparent to those ofordinary skill in the art that the method 300 may represent ageneralized illustration and that other operations may be added orexisting operations may be removed, modified, or rearranged withoutdeparting from the scopes of the method 300. Generally speaking, theapparatus 200 depicted in FIG. 2 may implement the method 300 throughexecution of at least some of the modules 212-222.

At block 302, a position 144 of a pointer 110 may be detected. Forinstance, the icon displaying module 212 may display a plurality oficons 102-108 in an arranged manner with respect to each other. Inaddition, the pointer location determining module 214 may determine thelocation 144 of the pointer 110, for instance, when the pointer 110 ispositioned over one of the icons 102-108. As discussed above, thepointer position 144 may be the position at which the pointer 110 islocated when the icon 102 is selected. In addition, the position 144 ofthe pointer 110 may be detected as two-dimensional coordinates, such ascoordinates in an x-y coordinate system.

At block 304, a menu 120 containing a set of sub-icons 122-126corresponding to the icon 102 over which the pointer 110 is detected tobe positioned may be displayed. For instance, the menu displaying module216 may display the menu 120 corresponding to the icon 102 when it isdetermined that the pointer 110 has been positioned over the icon 102for a predetermined length of time. Alternatively, the menu displayingmodule 216 may display the menu 120 in response to receipt of aninstruction signal, such as a mouse click, from a user. In any regard,the menu displaying module 216 may display the menu 120 at a locationthat is adjacent or otherwise near the selected icon 104.

At block 306, a first location 140 and a second location 142 of thedisplayed menu 120 may be determined. For instance, the locationdetermining module 218 may determine where on the display 100 a topcorner (first location 140) and a bottom corner (second location 142) ofthe menu 120 are located. The first location 140 may be the top cornerthat is closest to the selected icon 102 and the second location 142 maybe the bottom corner that is closest to the selected icon 102. Inaddition, the location determining module 218 may determine the x-ycoordinates of the first location 140 and the second location 142 of thedisplayed menu 120.

At block 308, a first line 146 (ceiling line) from the first location140 to the pointer position 144 may be determined. For instance, theline determining module 220 may determine where a line extends betweenthe first location 140 and the pointer position 144.

At block 310, a second line 148 (floor line) from the second location142 to the pointer position 144 may be determined. For instance, theline determining module 220 may determine where a line extends betweenthe second location 142 and the pointer position 144.

At block 312, points (coordinates) in a motion trail of the pointer 110may be recorded. For instance, the pointer location determining module214 may track and record the movement points 150 of the pointer 110 asthe pointer 110 is moved along a path such as the pointer motion path132 (FIG. 10). According to an example, the pointer location determiningmodule 214 may record two, three, or more positions near the initialpointer position 144.

At block 314, a third line 152 (motion trail line) that crosses theplurality of recorded points (movement points 150) may be determined.For instance, the line determining module 220 may determine the thirdline 152 as a line extending from the pointer position 144 and throughthe movement points 150 as shown in FIG. 1D.

At block 316, a determination may be made as to whether the third line152 is within an area between the first line 146 and the second line148. For instance, the line processing module 222 may determine wherethe angle between the first line 146 and the second line 148 is below180 degrees and whether the third line 152 is within that angle.According to an example, the line processing module 222 uses thePythagorean theorem to make this determination.

An example of a manner in which the line processing module 22 may usethe Pythagorean theorem to determine whether the third line 152 iswithin an area between the first line 146 and the second line 148 willnow be described with respect to the diagram depicted in FIG. 4. FIG. 4depicts many of the same features as those depicted in FIG. 1D and thusthe features that are common to both figures will not be described indetail with respect to FIG. 4. As shown in FIG. 4, various points areidentified with the letters “A”-“D”. Particularly, the letter “A”represents the pointer position 144, the letter “D” represents thatfirst location 140, the letter “C” represents the second location 142,and the letter “C′” represents one of the recorded movement points 150.The letter “B” represents a point between the first location 140 (D) andthe second location 142 (C) at which a line from the pointer position144 (A) is perpendicular to a line between the first location 140 (D)and the second location 142 (C).

The coordinates for the point “B” may be determined from the coordinatesof the pointer position 144 (A) and either of the first location 140 (D)and the second location 142 (C). That is, using an x-y coordinatesystem, the coordinates of the pointer position 144 (A) are (x_(a),y_(a)), the coordinates of the first location 140 (D) are (x_(d),y_(d)), and the coordinates of the second location 142 (C) are (x_(c),y_(c)). In addition, x_(c) may be equal to x_(d). The coordinates of thepoint “B” may thus be calculated to be (x_(c), y_(a)). The lengths ofthe lines between A and B and between A and C may thus be calculatedbased upon the known coordinates of the points A, B, and C.

According to the Pythagorean theorem, it is known that the lines betweenthe points AC, AB, and BC are related by the equation AC²=AB²+BC² andtherefore, the equation AC=√{square root over (AB²+BC²)}. In addition,the sine value of the corner at A for the triangle formed by the pointsA, B, and C is sin A=BC/AC.

In order to determine the sin value of the corner at A that includes thethird line 152, the line processing module 222 may select one of therecorded movement points 150, which is labeled as “C” in FIG. 4. Thecoordinates of C′ may be known to the line processing module 222 to be(x_(c′), y_(c′)). Using the same technique as discussed above todetermine the coordinates of B, the coordinates of B′ may be calculatedto be (x_(c′), y_(a)). In addition, the sine value of the corner at Afor the triangle formed by the points A, B′, and C′ may be calculatedaccording to sin A′=B′C′/AC′.

The line processing module 222 may determine whether the third line 152is outside of the area between the first line 146 and the second line148 based upon a comparison of the values of sin A and sin A′. That is,the line processing module 222 may determine that the third line 152 isoutside of the area between the first line 146 and the second line 148if sin A<sin A′ and that the third line 152 is within the area if sinA>sin A′.

Although particular reference has been made to the use of the sinefunction to determine various values discussed above, it should beclearly understood that other functions, such as the tangent function,may instead be used to make these determinations.

With reference back to FIG. 3, in response to a determination that thethird line 152 is within the area between the first line 146 and thesecond line 148, the menu 120 may continue to be displayed, as indicatedat block 318. In addition, blocks 308-318 may be repeated as the pointer110 is moved toward the sub-icon 126, with different ones of themovement points 150 becoming the initial position 144 and the otherrecorded movement points 150 of the pointer 110 used to make thedetermination at block 316 during each iteration of blocks 308-318. Inaddition, iterations of blocks 308-318 may be repeated as the pointer110 moves until the pointer 110 reaches the menu 120 or a time-outoccurs. However, if the third line 152 is determined to be outside ofthe area between the first line 146 and the second line 148, the menu120 may be closed or otherwise cease to be displayed, as indicated atblock 320. The menu 120 may also be closed or otherwise cease to bedisplayed if, for instance, the pointer 110 is determined to bepositioned over another icon for a predefined length of time asdiscussed above. In this example, another menu that corresponds to theanother icon may be displayed.

Some or all of the operations set forth in the method 300 may becontained as a utility, program, or subprogram, in any desired computeraccessible medium. In addition, the method 300 may be embodied by acomputer program, which may exist in a variety of forms both active andinactive. For example, the computer program may exist as machinereadable instructions, including source code, object code, executablecode or other formats. Any of the above may be embodied on anon-transitory computer-readable storage medium.

Examples of non-transitory computer-readable storage media includecomputer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disksor tapes. It is therefore to be understood that any electronic devicecapable of executing the above-described functions may perform thosefunctions enumerated above.

Turning now to FIG. 5, there is shown a schematic representation of acomputing device 500, which may represent the apparatus 200 depicted inFIG. 2, according to an example. The computing device 500 may include aprocessor 502 and an input/output interface 504. The input/outputinterface 504 may provide an interface with an input device, such as akeyboard, a mouse, etc., and an output device, such as a display. Thecomputing device 500 may also include a network interface 508, such as aLocal Area Network LAN, a wireless 802.11x LAN, a 3G mobile WAN or aWiMax WAN, through which the computing device 500 may connect to anetwork. The computing device 500 may further include acomputer-readable medium 510 on which is stored sets of machine-readableinstructions. Each of these components may be operatively coupled to abus 512, which may be an EISA, a PCI, a USB, a FireWire, a NuBus, a PDS,or the like.

The computer-readable medium 510 may be any suitable medium thatparticipates in providing instructions to the processor 502 forexecution. For example, the computer-readable medium 510 may benon-volatile media, such as an optical or a magnetic disk; volatilemedia, such as memory. As shown, the computer-readable medium 510 maystore the icon displaying module 212, the pointer location determiningmodule 214, the menu displaying module 216, the location determiningmodule 218, the line determining module 220, and the line processingmodule 222.

Although described specifically throughout the entirety of the instantdisclosure, representative examples of the present disclosure haveutility over a wide range of applications, and the above discussion isnot intended and should not be construed to be limiting, but is offeredas an illustrative discussion of aspects of the disclosure.

What has been described and illustrated herein is an example of thedisclosure along with some of its variations. The terms, descriptionsand figures used herein are set forth by way of illustration only andare not meant as limitations. Many variations are possible within thespirit and scope of the disclosure, which is intended to be defined bythe following claims—and their equivalents—in which all terms are meantin their broadest reasonable sense unless otherwise indicated.

What is claimed is:
 1. A method for controlling a menu display, saidmethod comprising: detecting a position of a pointer, wherein thepointer is positioned over an icon of a plurality of selectable icons;responsive to a determination that the icon is selected, displaying,adjacent to the plurality of selectable icons, a menu containing a setof sub-icons corresponding to the icon; determining a first location anda second location of the displayed menu; determining a first line fromthe position of the pointer to the first location; determining a secondline from the position of the pointer to the second location; recordinga plurality of points in a movement of the pointer; determining a thirdline that crosses the plurality of recorded points; determining whetherthe third line is within an area between the first line and the secondline; and in response to a determination that the third line is withinthe area between the first line and the second line, continuing todisplay the menu while the pointer passes over another icon of theplurality of selectable icons.
 2. The method according to claim 1,wherein determining whether the third line is within the area betweenthe first line and the second line further comprises determining whetherthe third line is within the area between the first line and the secondline through performance of calculations involving coordinates of thefirst location, the second location, and the position of the pointer. 3.The method according to claim 1, wherein the first line, the secondline, and the third line meet at the detected position of the pointer,wherein an angle that is less than 180 degrees is formed between thefirst line and the second line, and wherein determining whether thethird line is within an area between the first line and the second linefurther comprises determining whether the third line is within the angleformed between the first line and the second line.
 4. The methodaccording to claim 1, further comprising: displaying the plurality ofselectable icons in an arranged manner on a display; and displaying themenu as a popup menu adjacent to the displayed plurality of selectableicons.
 5. The method according to claim 4, wherein displaying theplurality of selectable icons further comprises displaying the pluralityof selectable icons in a vertically arranged manner and wherein thefirst location is a top corner location of the displayed menu and thesecond location is a bottom corner location of the displayed menu. 6.The method according to claim 1, wherein displaying the menu furthercomprises displaying the menu as a pop-up menu.
 7. The method accordingto claim 1, further comprising: determining that the pointer ispositioned over the icon for a predetermined length of time; and whereindisplaying the menu further comprises displaying the menu following thedetermination that the pointer is positioned over the icon for thepredetermined length of time.
 8. The method according to claim 1,further comprising: in response to a determination that the third lineis outside of the area between the first line and the second line,closing the displayed menu.
 9. The method according to claim 1, furthercomprising: determining that the pointer is positioned over another iconof the plurality of selectable icons for a predefined length of timewhile the menu is displayed and the third line is within the areabetween the first line and the second line; closing the displayed menu;and displaying another menu containing sub-icons corresponding to theanother icon.
 10. An apparatus for controlling a menu display, saidapparatus comprising: a processor; and a memory on which is storedmachine readable instructions that are to cause the processor to:display a plurality of selectable objects in an arranged manner; detectinitial coordinates of a selector that is positioned over an object ofthe plurality of selectable objects; responsive to a determination thatthe object is selected, display a menu containing a set of selectablesub-objects adjacent to the plurality of selectable objects; determine afirst location and a second location of the displayed menu; determine afirst line from the initial coordinates to the first location; determinea second line from the initial coordinates to the second location;determine an area between the first line and the second line; record aplurality of coordinates in a motion trail of the selector from theinitial coordinates; determine a third line that crosses the pluralityof recorded coordinates from the initial coordinates; determine whetherthe third line is within the area between the first line and the secondline; and in response to a determination that the third line is withinthe area between the first line and the second line, continue to displaythe menu while the selector passes over another object of the pluralityof selectable objects.
 11. The apparatus according to claim 10, whereinthe machine readable instructions are further to cause the processor todetermine whether the third line is within the area between the firstline and the second line through performance of calculations involvingcoordinates of the first location, the second location, and the initialcoordinates of the selector.
 12. The apparatus according to claim 10,wherein the first line, the second line, and the third line meet at thedetected position of the selector, wherein an angle that is less than180 degrees is formed between the first line and the second line, andwherein, to determine whether the third line is within an area betweenthe first line and the second line, the machine readable instructionsare further to determine whether the third line is within the angleformed between the first line and the second line.
 13. The apparatusaccording to claim 10, wherein the machine readable instructions arefurther to cause the processor to close the displayed menu in responseto a determination that the third line is outside of the area betweenthe first line and the second line.
 14. The apparatus according to claim10, wherein the machine readable instructions are further to cause theprocessor to determine that the selector is positioned over anotherobject of the plurality of selectable objects for a predefined length oftime while the menu is displayed and the third line is within the areabetween the first line and the second line; close the displayed menu;and display another menu containing sub-objects corresponding to theanother object.
 15. A non-transitory computer-readable storage medium onwhich is stored machine readable instructions that when executed by aprocessor cause the processor to: detect initial coordinates of apointer that is positioned over an object of a plurality of selectableobjects; responsive to a determination that the object is selected,display a popup menu containing a set of selectable sub-objects adjacentto the plurality of selectable objects; determine a first location and asecond location of the displayed menu; determine a ceiling line from theinitial coordinates to the first location; determine a floor line fromthe initial coordinates to the second location; record a plurality ofcoordinates in a motion trail of the pointer; determine a motion trailline that crosses the plurality of recorded coordinates; determinewhether the motion trail line is within a boundary between the ceilingline and the floor line; and in response to a determination that themotion trail line is within the boundary between the first line and thesecond line, continue to display the menu while the pointer passes overanother object of the plurality of selectable objects.